/*
 * @Description: 检测计划设置字典及枚举
 * @Author: Rfan
 * @Date: 2022-10-13 18:39:23
 * @LastEditTime: 2022-10-20 15:21:57
 */

// 检测对象类型
export const checkedObjTypeList = [
  { id: 1, name: '条目检测' },
  { id: 2, name: '原文检测' },
  { id: 3, name: 'EEP格式包检测' },
  { id: 4, name: '光盘格式包检测' },
  { id: 5, name: '环境检测' }
];

export enum CheckedObjType {
  Entry = 1,
  Original,
  EEP,
  CD,
  Environment
}

// 四性检测
export const paneList = [
  { id: 1, name: '真实性' },
  { id: 2, name: '完整性' },
  { id: 4, name: '可用性' },
  { id: 3, name: '安全性' }
];
export enum CheckProps {
  Authenticity = 1,
  Integrity,
  Security,
  Usability
}

// 检测内容类型
export const checkContentType = [
  { id: 1, name: '正则' },
  { id: 2, name: '字符串' },
  { id: 3, name: '字典表' },
  { id: 4, name: '函数' }
];
export enum EnumCheckContentType {
  Regular = 1,
  String,
  Dictionary,
  Function
}

// 元数据类型
export const metadataTypeList = [
  { id: 0, name: '字符型' },
  { id: 1, name: '整型' },
  { id: 2, name: '长整型' },
  { id: 3, name: '小数型' },
  { id: 4, name: '日期型' },
  { id: 5, name: '时间型' },
  { id: 6, name: '大对象' }
];

/**
 * 真实性检测枚举
 */
export enum EnumAuthenticityRuleType {
  // 1.	（条目）字段规则
  // 2.	（条目）编制规则
  // 3.	（原文）电子文件来源真实性检测
  // 4.	（原文）属性一致性检测，电子文件的电子属性与元数据记录一致
  // 5.	（原文）关联一致性检测，元数据中记录的文件存储位置与实际位置
  // 6.	（EEP）信息包一致性检测：采用数字摘要比对等方式对归档信息包的一致性进行检测。归档前计算归档信息包的数字摘要，接收时重新计算数字摘要并和归档前的数字摘要进行比对
  // 7.	（EEP）电子档案封装包规范性检测：依据DA/T 48-2009附录B《电子文件封装包的Schema》进行检测
  // 8.	（EEP）电子档案封装包电子签名有效性检测：读取封装包中的电子签名信息验证其有效性。
  // 9.	（光盘）说明文件和目录文件规范性检测：依据国家有关规定，检测说明文件和目录文件信息组织是否符合规范
  // 10.	（光盘）信息包目录结构规范性检测：依据国家有关规定，检测归档信息包内的文件夹结构是否符合规范。

  ItemField = 1,
  ItemFormation,
  OriginalSourceAuthenticity,
  OriginalProperty,
  OriginalRelation,
  EEPConsistency,
  EEPNormalization,
  EEPSignValidity,
  DiskStandardized,
  DiskCatalogueStandardized
}

// 完整性检测枚举
export enum EnumIntegralityRuleType {
  // 1.	（条目）字段是否存在规则
  // 2.	（条目）字段值必填规则
  // 3.	（条目）字段值连续性规则
  // 4.	（光盘）总件数相符性检测：统计电子文件总件数，并和GB/T 18894-2016表A.1《电子文件归档登记表》中登记的归档电子文件数量比对。检测要求：《电子档案移交与接收办法》
  // 5.	（光盘）总字节数相符性检测：统计电子文件总字节数，并和GB/T 18894-2016表A.1《电子文件归档登记表》中登记的归档电子文件总字节数比对
  // 6.	（光盘）归档范围检测：依据单位归档范围和保管期限表对归档信息包中的元数据和内容数据进行检测，判断其是否存在遗漏或错误情况，如果存在问题则为不通过。
  // 7.	（光盘）信息包内容数据完整性检测：依据归档信息包元数据中记录的文件数量检测归档信息包中实际包含的电子文件数量，比对两者是否相符。如果不匹配则为不通过。

  ItemFieldExist = 1,
  ItemFieldValueRequired,
  ItemFieldValueContinuity,
  DiskTotalRecordConsistency,
  DiskTotalByteConsistency,
  DiskFilingRange,
  DiskContentIntegrality
}

// 安全性检测枚举
export enum EnumSecurityRuleType {
  // 1.	（原文）病毒感染检测
  // 2.	（光盘）载体中多余文件检测：对载体进行读取操作，判断载体内是否含有非归档文件，同光盘格式包规范进行比对，如果存在多余的文件内容，则为不通过。
  // 3.	（光盘）载体读取速度检测：对载体进行读取操作，和常规的读取速度进行比对判断载体是否安全可靠。
  // 4.	（光盘）光盘合格性检测：依据DA/T 38-2008的要求对光盘的PIE、POF、BLER等指标进行检测，判断光盘是否合格。不合格/不匹配的为不通过。
  // 5.	（系统环境）系统环境中是否安装杀毒软件检测：检测操作系统是否安装国内通用杀毒软件
  // 6.	（系统环境）操作过程安全性检测：按照国家安全保密要求从技术和管理等方面采取措施，确保归档信息包在归档和保存过程安全、可控
  // 7.	（系统环境）软件系统安全漏洞检测：采用专业的漏洞扫描工具检测参与电子档案长期保存的计算机系统是否存在安全漏洞
  OriginalVirusInfection = 1,
  DiskExtraFiles,
  DiskReadSpeed,
  DiskConformity,
  SysEnvInstallAntivirus,
  SysEnvOperationProcess,
  SysEnvBug
}
// 可用性检测规枚举

export enum EnumUsabilityRuleType {
  // 1.	（条目）目标数据库中的元数据可访问性检测：检测是否可以正常连接数据库，是否可以正常访问元数据表中的记录。
  // 2.	（原文）电子原文格式检测：检测原文格式是否满足值域范围
  // 3.	（原文）内容数据的可读性检测：系统尝试打开文件，进行读取，如果不可读取则检测不通过。
  // 4.	（原文）软硬件环境合规性检测：对电子属性信息中记录的软硬件环境信息进行检测，判断其是否符合归档/移交要求
  // 5.	（原文）保存环境变化情况检测：依据电子档案属性信息中记录的系统环境信息对长期保存的软硬件环境信息进行检测，判断长期保存环境的变化情况。
  // 6.	（EEP）内容数据格式长期可用性检测：依据用户定义的长期保存格式策略进行检测。如果与格式配置相符则检测通过。
  // 7.	（EEP）备份数据可恢复性检测
  // 8.	（光盘）信息包中元数据的可读性检测：检测归档信息包中存放元数据的XML文件是否可以正常解析、读取数据。如果无法解析/读取则为不通过。
  // 9.	（光盘）信息包中包含的内容数据格式合规性检测：对归档信息包是否包含非公开压缩算法、是否加密、是否包含不符合归档要求的文件格式等进行检测。如果不匹配则为不通过。

  ItemTargetAccessible = 1,
  OriginalFormat,
  OriginalContentReadability,
  OriginalEnvironmentCompliance,
  OriginalEnvironmentalChange,
  EEPContentFormatUsability,
  EEPBackDataRestorability,
  DiskMetadataReadability,
  DiskContentFormatCompliance
}

/**
 * 条目检测
 */

// 检测类型
export const fieldCheckType = [
  { id: 1, name: '长度规则' },
  { id: 2, name: '类型规则' },
  { id: 3, name: '格式规则' },
  { id: 4, name: '值域规则' },
  { id: 5, name: '重复性规则' },
  { id: 6, name: '特殊字符规则' }
];
export enum EnumFieldCheckType {
  Length = 1,
  Type,
  Format,
  ValueRange,
  Repeat,
  Special
}

/**
 * 原文检测
 */
// 电子文件来源真实性检测枚举
export enum EnumOriginalSourceRuleType {
  // 1.	数据摘要
  // 2.	电子签名
  // 3.	电子印章
  // 4.	时间戳

  DataDigest = 1,
  ElectronicSign,
  ElectronicSeal,
  Timestamp
}
